var _node = "", //树状菜单节点对象
	_treeNode = "", //树状菜单容器id值
	isAdd = true; //存储科组的操作类型
	

var setting = {
	view: {
		expandSpeed: "",
		//		addHoverDom: addHoverDom,
		//		removeHoverDom: removeHoverDom,
		selectedMulti: false
	},
	edit: {
		enable: true,
		showRemoveBtn: false,
		showRenameBtn: false
	},
	data: {
		keep: {
			parent: true,
			leaf: true
		},
		simpleData: {
			enable: true
		}
	},
	check: {
		//							enable: true //添加勾选功能
	},
	callback: {
		//		beforeDrag: beforeDrag, //拖拽之前回调
		//		beforeRemove: beforeRemove,
		//		beforeRename: beforeRename,
		//		beforeCheck: beforeCheck, //勾选的时候的回调
		onClick: zTreeOnClick, //点击节点函数
		onExpand: zTreeOnExpand,
		beforeDrag:function(){return false;} 
	}
};
var zNodes = [{
	pid: 0,
	id: 1,
	name: "父节点1 - 展开",
	icon_name: "aaa",
	open: true,
	url: "",
	children: [{
			pid: 1,
			id: 11,
			name: "叶子节点111",
			icon_name: "aaa",
			open: true,
			url: ""
		},
		{
			pid: 1,
			id: 12,
			name: "叶子节点112",
			icon_name: "aaa",
			open: true,
			url: ""
		},
	]
}];

/*
 * 点击节点回调函数
 * @param treeId {object} 树状菜单事件监听机制对象
 * @param treeNode {string} 树状菜单id值
 * @param node {obj} 所选择的树状菜单项的数据
 */
function zTreeOnClick(treeId, treeNode, node) {
	console.log(treeId, treeNode, node);
	_treeNode = treeNode;
	_node = node;
}

//=============================================================================班级模块============================================================
//获取未绑定的教室列表
function getClassroomSelect(){
	fnAjax.method_4(
		url_join("class/room"), 
		{},
		"post",
		function(data) {
			$.getRoleList(data.data,$("#classroomSelect"));
		}
	);
}

//新增编辑班级
$(".btn-save-class").on("click", function() {
	var num = /^\+?[1-9][0-9]*$/;//非零正整数
	if(!num.test($("#class_input").val())){
		layer.alert("班级只能是非零正整数");
		return false;
	}
	//新增
	if(isAdd) {
		optionClass(
			url_join("class/create"), {
				grade_id: _node.id,
				name: $("#class_input").val(),
				room_id: $("#classroomSelect").val()
			}
		);
	}
	//编辑
	else {
		optionClass(
			url_join("class/update"), {
				cid:_node.id,
				grade_id: _node.pId,
				name: $("#class_input").val(),
				room_id: $("#classroomSelect").val()
			}
		);
	}
});
/*
 新增编辑班级	函数
 @param {string} url 请求接口
 @param {object} oData 请求数据
 * */
function optionClass(url, oData) {
	fnAjax.method_4(
		url,
		oData,
		"post",
		function(data) {
			console.log(data);
			$("#class_input").val("");
			$("#classModal").modal("hide");
			$("#class_input").removeAttr("readonly");
			layer.msg("操作成功", {
				time: 1000
			}, function() {
				//初始化班级信息
				initClassList();
				getClassroomSelect();				
			});
		}
	);
}
//新增一个班级入口
$(".class-btns .btn-add-one").on("click", function() {
	if(_treeNode != "classList") {
		layer.alert("请在班级列表模块选择年级");
	} else {
		if(!_node.isParent) {
			layer.alert("请先选择年级");
			return false;
		}
		isAdd = true;
		
		if($("#classroomSelect").find("option").length < 1){
			layer.alert("已经没有可以绑定的教室了，请先到教室模块创建教室");
		}else{
			$("#classModal").modal("show");
			$("#class_input").val("").removeAttr("readonly");
			$(".room_name").remove();
		}
	}

});
//编辑班级入口
$(".class-btns .btn-edit").on("click", function() {
	if(_treeNode != "classList") {
		layer.alert("请在班级列表模块选择班级");
	} else {
		$("#classModal").modal("show");
		$("#class_input").val(_node.name).attr("readonly","readonly");
		isAdd = false; //
		$(".room_name").remove();
		$("#class_input").parent().append($('<span class="room_name">('+ (_node.room_name && _node.room_name) +')</span>'));
	}

});
//删除班级
$(".class-btns .btn-del").on("click", function() {
	if(_treeNode != "classList") {
		layer.alert("请在班级列表模块选择年级");
	} else {
		if(_node.isParent) {
			layer.alert("请先选择班级");
		} else {
			fnAjax.method_4(
				url_join("class/delete"), {
					cid: _node.id
				},
				"post",
				function(data) {
					console.log(data);
					layer.msg("操作成功", {
						time: 1000
					}, function() {
						initClassList();
						getClassroomSelect();				
					});
				}
			);
		}
	}
});
//导入班级学生
$(".class-btns .btn-export-toLead").on("click", function() {
//	if(_treeNode != "classList") {
//		layer.alert("请在班级列表模块选择年级");
//	} else {
//		if(_node.isParent) {
//			layer.alert("请先选择班级");
//		} else {
//			fnAjax.method_4(
//				url_join(""), {
//					cid: _node.id
//				},
//				"post",
//				function(data) {
//					console.log(data);
//					layer.msg("操作成功", {
//						time: 1000
//					}, function() {
////						initClassList();
////						getClassroomSelect();				
//					});
//				}
//			);
//		}
//	}
	layer.alert("功能暂未开放");
});
//初始化年级班级信息
function initClassList() {
	//获取年级
	fnAjax.method_4(
		url_join("grade/list"), {},
		"post",
		function(data) {
			console.log(data);
			$.each(data.data, function(i, v) {
				v.isParent = true;
				v.open = false;
			});

			$.fn.zTree.init($("#classList"), setting, data.data);
		}
	);
}
//折叠获取班级信息
function zTreeOnExpand(event, treeId, treeNode) {
	console.log(event, treeId, treeNode);
	fnAjax.method_4(
		url_join("class/list"), {
			grade_id: treeNode.id
		},
		"post",
		function(data) {
			console.log(data);
			var zTree = $.fn.zTree.getZTreeObj("classList"); //zTree v3.x 专门提供的根据 treeId 获取 zTree 对象的方法。（获取dom容器id）
			zTree.removeChildNodes(treeNode); //清空子节点
			$.each(data.data, function(i, v) {
				if(v.grade_id) {
					zTree.addNodes(
						treeNode, {
							id: v.id,
							pId: v.grade_id, //pId继承的是父节点的id（父id）
							name: v.name,
							room_name:v.room_name+"教室"
						}
					);
				}
			});

		}
	);
};
//====================================================================班级模块================================================================

//===========================================================================科组模块=================================================
//删除科组
$(".classGroup-btns .btn-del").on("click", function() {
	if(_treeNode != "classGroupList") {
		layer.alert("请在科组列表模块选择科组");
	} else {
		fnAjax.method_4(
			url_join("class-group/delete"), {
				cg_id: _node.id
			},
			"post",
			function(data) {
				console.log(data);
				layer.msg("操作成功", {
					time: 1500
				}, function() {
					initclassGroupList();
				});
			}
		);
	}

});
//编辑科组入口
$(".classGroup-btns .btn-edit").on("click", function() {
	if(_treeNode != "classGroupList") {
		layer.alert("请在科组列表模块选择科组");
	} else {
		$("#class_groupModal").modal("show");
		$("#class_group_input").val(_node.name);
		$("#class_group_type").val(_node.type);
		$("#class_group_real").val(_node.real);
		isAdd = false; //
	}

});
//初始化科组信息
function initclassGroupList() {
	fnAjax.method_4(
		url_join("class-group/list"), {},
		"post",
		function(data) {
			console.log(data);
			$.fn.zTree.init($("#classGroupList"), setting, data.data);
		}
	);
}
//新增科组入口
$(".classGroup-btns .btn-add").on("click", function() {
	isAdd = true;
	$("#class_groupModal").modal("show");

});

//新增编辑科组
$(".btn-save-classGroup").on("click", function() {
	
	//新增
	if(isAdd) {
		optionClassGroup(
			url_join("class-group/create"), {
				name: $("#class_group_input").val(),
				type: $("#class_group_type").val(),
				real:$("#class_group_real").val()
			}
		);
	}
	//编辑
	else {
		optionClassGroup(
			url_join("class-group/update"), {
				cg_id: _node.id,
				name: $("#class_group_input").val(),
				type: $("#class_group_type").val(),
				real:$("#class_group_real").val()
			}
		);
	}
});
/*
 新增编辑科组	函数
 @param {string} url 请求接口
 @param {object} oData 请求数据
 * */
function optionClassGroup(url, oData) {
	fnAjax.method_4(
		url,
		oData,
		"post",
		function(data) {
			console.log(data);
			$("#class_group_input").val("");
			$("#class_groupModal").modal("hide");
			layer.msg("操作成功", {
				time: 1000
			}, function() {
				//初始化科组信息
				initclassGroupList();
			});
		}
	);
}
//======================================================================================科组模块=============================================================

//==================================================================================年级模块======================================================

//初始化年级列表
function initGradeList() {
	//获取年级
	fnAjax.method_4(
		url_join("grade/list"), {},
		"post",
		function(data) {
			console.log(data);
			$.fn.zTree.init($("#gradeList"), setting, data.data);
			initClassList();
		}
	);
}
//删除年级
$(".grade-btns .btn-del").on("click", function() {
	if(_treeNode != "gradeList") {
		layer.alert("请在年级列表模块选择年级");
	} else {
		fnAjax.method_4(
			url_join("grade/delete"), {
				gid: _node.id
			},
			"post",
			function(data) {
				console.log(data);
				layer.msg("操作成功", {
					time: 1500
				}, function() {
					initGradeList();
				});
			}
		);
	}
});

//新增年级入口
$(".grade-btns .btn-add").on("click", function() {
	isAdd = true;
	$("#gradeModal").modal("show");

});
//编辑年级入口
$(".grade-btns .btn-edit").on("click", function() {
	if(_treeNode != "gradeList") {
		layer.alert("请在年级列表模块选择年级");
	} else {
		$("#gradeModal").modal("show");
		$("#grade_input").val(_node.name);
		$("#grade_type").val(_node.type);
		isAdd = false; //
		cgId = _node.id; //存储年级id

	}

});
//新增编辑年级
$(".btn-save-grade").on("click", function() {
	var onlyHanZi = /^[\u4e00-\u9fa5]+$/;
	if(!onlyHanZi.test($("#grade_input").val())) {
		layer.alert("不能输入汉字之外的字符！");
		$("#grade_input").val("");
		return false;
	}
	//新增
	if(isAdd) {
		optionGrade(
			url_join("grade/create"), {
				name: $("#grade_input").val(),
				type: $("#grade_type").val()
			}
		);
	}
	//编辑
	else {
		optionGrade(
			url_join("grade/update"), {
				gid: _node.id,
				name: $("#grade_input").val(),
				type: $("#grade_type").val()
			}
		);
	}
});
/*
 新增编辑年级函数
 @param {string} url 请求接口
 @param {object} oData 请求数据
 * */
function optionGrade(url, oData) {
	fnAjax.method_4(
		url,
		oData,
		"post",
		function(data) {
			console.log(data);
			$("#grade_input").val("");
			$("#gradeModal").modal("hide");
			layer.msg("操作成功", {
				time: 1000
			}, function() {
				//初始化年级信息
				initGradeList();
			});
		}
	);
}
//==============================================================================年级模块========================================================================

//==============================================================================职务模块===================================================================
//删除职务
$(".job-btns .btn-del").on("click", function() {
	if(_treeNode != "jobList") {
		layer.alert("请在职务列表模块选择职务");
	} else {
		fnAjax.method_4(
			url_join("job/delete"), {
				jid: _node.id
			},
			"post",
			function(data) {
				console.log(data);
				layer.msg("操作成功", {
					time: 1500
				}, function() {
					initJobList();
				});
			}
		);
	}

});

//编辑职务
$(".job-btns .btn-edit").on("click", function() {
	if(_treeNode != "jobList") {
		layer.alert("请在职务列表模块选择职务");
	} else {
		layer.prompt({
			formType: 0,
			value: _node.name,
			title: '请输入要修改的职务名称'
		}, function(value, index, elem) {
			fnAjax.method_4(
				url_join("job/update"), {
					jid: _node.id,
					name: value
				},
				"post",
				function(data) {
					console.log(data);
					layer.msg("操作成功", {
						time: 1500
					}, function() {
						initJobList();
					});
				}
			);
		});
	}
});
//新增职务
$(".job-btns .btn-add").on("click", function() {
	layer.prompt({
		formType: 0,
		value: '',
		title: '请输入要添加的职务名称'
	}, function(value, index, elem) {
		fnAjax.method_4(
			url_join("job/create"), {
				name: value
			},
			"post",
			function(data) {
				console.log(data);
				layer.msg("操作成功", {
					time: 1500
				}, function() {
					//初始化
					initJobList();
				});
			}
		);
	});
});

//初始化职务信息
function initJobList() {
	//获取
	fnAjax.method_4(
		url_join("job/list"), {},
		"post",
		function(data) {
			console.log(data);
			$.fn.zTree.init($("#jobList"), setting, data.data);
		}
	);
}
//==============================================================================职务模块===================================================================

//=================================================================教室模块=========================================================================
//新增教室
$(".classroom-btns .btn-add").on("click", function() {
	layer.prompt({
		formType: 0,
		value: '',
		title: '请输入要添加的教室名称'
	}, function(value, index, elem) {
//		var onlyNum = /^[0-9A-Za-z]*$/;
//		if(!onlyNum.test(value)){
//			layer.alert("教室只能输入数字！");
//			return false;
//		}
		fnAjax.method_4(
			url_join("classroom/create"), {
				name: value
			},
			"post",
			function(data) {
				console.log(data);
				layer.msg("操作成功", {
					time: 1500
				}, function() {
					//初始化
					initClassroomList();
					//初始化未选教室
					getClassroomSelect();
				});
			}
		);
	});
});
//删除教室
//	$(".classroom-btns .btn-del").on("click",function(){
//		if(_treeNode != "classroomList"){
//			layer.alert("请在教室列表模块选择职务");
//		}
//		else{
//			fnAjax.method_4(
//				url_join("classroom/delete"),
//				{room_id:_node.id},
//				"post",
//				function(data) {
//					console.log(data);
//					layer.msg("操作成功", {
//						time: 1500
//					}, function() {
//						initClassroomList();
//					});
//				}
//			);
//		}
//		
//	});

//编辑教室
$(".classroom-btns .btn-edit").on("click", function() {
	if(_treeNode != "classroomList") {
		layer.alert("请在教室列表模块选择职务");
	} else {
		layer.prompt({
			formType: 0,
			value: _node.name,
			title: '请输入要修改的教室名称'
		}, function(value, index, elem) {
			fnAjax.method_4(
				url_join("classroom/update"), {
					room_id: _node.id,
					name: value
				},
				"post",
				function(data) {
					console.log(data);
					layer.msg("操作成功", {
						time: 1500
					}, function() {
						initClassroomList();
						//初始化未选教室
						getClassroomSelect();
					});
				}
			);
		});
	}
});
//初始化教室
function initClassroomList() {
	fnAjax.method_4(
		url_join("classroom/list"), {},
		"post",
		function(data) {
			console.log(data);
			$.fn.zTree.init($("#classroomList"), setting, data.data);
		}
	);
}
//=============================================教室模块===============================================================================
$(document).ready(function() {
	initGradeList(); //初始化年级列表
	initClassList(); //初始化班级
	initclassGroupList(); //初始化科组信息
	initJobList(); //初始化职务
	initClassroomList(); //初始化教室
	getClassroomSelect();//获取未绑定的教室列表

	//初始化树状菜单插件
	//	$.fn.zTree.init($("#gradeList"), setting, zNodes);
	//	$.fn.zTree.init($("#classList"), setting, zNodes);
	//	$.fn.zTree.init($("#classGroupList"), setting, zNodes);
	//	$.fn.zTree.init($("#jobList"), setting, zNodes);
	$("#tabUl>li").on("click",function(){
		if(!$(this).hasClass("active")){
			_node = ""; //树状菜单节点对象
			_treeNode = ""; //树状菜单容器id值
			$(".ztree a").removeClass("curSelectedNode");
		}
	});
	
});